<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        const obj = {
            name: 'cc'
        }

        // Object.defineProperty(对象, 属性, 配置项)

        // 配置项当中  不能把普通的配置项和  get / set  同时配置


        // get函数   getter获取器，当访问对象的属性的时候，这个函数会被自动调用
        // set函数   setter设置器，当修改对象的属性的时候，这个函数会被自动调用


        Object.defineProperty(obj, 'age', {

            get() {
                // console.log(8888888);
                return 20
            },
            set(v) {
                console.log(999);
            }
        })

        // console.log(obj);


        // console.log(obj.age);

        obj.age = 30;   // 修改age会自动调用这个set函数

    </script>

</body>

</html>